import SQL from 'sql'
// 声明缓存池
cache.new('results');
// cache.new('proxy');
cache.new('open');
cache.new('login');
cache.new('oauth');
cache.new('session')


runtime.proxy.register('test','test')
runtime.xterm.register('test')


// 声明SQL连接池
// 生产环境
SQL.new(
    "system_sql",
    "mysql",
    "x_magic:SDFLPBR62zmDnAmW@tcp(localhost:3306)/x_magic",
    // "x_magic:EeXh4herXswDCfBF@tcp(42.51.49.90:3306)/x_magic",
    1024 // 声明缓存池大小
);

// 测试环境
SQL.new(
    "develop_sql",
    "mysql",
    "x_magic_test:SDFLPBR62zmDnAmW@tcp(localhost:3306)/x_magic_test",
    1024 // 声明缓存池大小
);

SQL.new(
    "bmp_admin",
    "mysql",
    "bmp_admin:SDFLPBR62zmDnAmW@tcp(localhost:3306)/bmp_admin",
    1024 // 声明缓存池大小
);

// 从系统配置表中读取配置信息，并存入缓存池中
const SYSTEM_CONFIG = SQL.queryWithCache(
    "system_sql",
    86400, // 缓存时间，单位秒，0表示不缓存，-1表示永久缓存，默认缓存时间为1天
    "SELECT * FROM `sys_configs` WHERE `delete_time` IS NULL;",
);

// 添加一个每秒触发一次的定时任务
// "* * * * * *" 格式说明
// 秒 分 时 日 月 星期
// * 表示任意值
// , 表示多个值
// - 表示范围
// / 表示步长
// 例如：
// * * * * * * 30 表示每秒触发一次且执行时长限制为30秒（否则超时强制结束）
// 0 * * * * * * 表示每分钟的第0秒触发一次且不限制执行时长（可以用 * 或 0 表示）
// 0 0 * * * * 0 表示每小时的第0分第0秒触发一次
// 0 0 0 * * * * 表示每天的第0时第0分第0秒触发一次
// crontab.add('test','* * * * * * *','console.log(123456)')  // 每秒输出123456
// crontab.add('test1','*/5 * * * * * *','console.log(1234567)')  // 每5秒输出123456
// crontab.add('test','0 0 0 * * * *','console.log(123456)')  // 每秒输出123456

// 每过11小时50分更新
// crontab.add('dingTalk_access_token', '0 50 */11 * * * 30', 'event/apps/dingtalk/getAccessToken.js')
crontab.add('wechat_access_token', '0 50 */11 * * * *', 'event/apps/wechat/getAccessToken.js')

// 每5分钟执行一次 test -> 1
crontab.add('refresh_flow', '0 */5 * * * * *', 'event/oa_flow/refresh_flow/refresh_flow.js')

// 每2个小时执行一次
crontab.add('plan_warning', '0 0 */2 * * * *', 'event/oa_flow/refresh_flow/plan_warning.js')

// 每天00:00:00 自动审核日报
// crontab.padd('dayreport_status_update', '0 0 0 * * * *', 1, 'event/system/oaAutoPassDaily.js')
crontab.padd('dingtalk_access_token', '0 0 0 * * * *', 2, 'event/apps/dingtalk/getAccessToken.js')

// 启动时运行一遍
crontab.runAll()
